package productions;

import exceptions.ParserException;
import lexico.ErrorTable;
import lexico.SymbolTable;
import lexico.TokenClass;

/**
 * @author heekinho
 */
//public class DclrPrimitivoProduction extends AbstractProductionRule {
//    /* Muitos dos métodos irão precisar de algo assim: */
//
//    private static DclrPrimitivoProduction instance = new DclrPrimitivoProduction();
//
//    public static DclrPrimitivoProduction getInstance() {
//        return instance;
//    }
//
//    public DclrPrimitivoProduction() {
//    }
//
//    /**
//     * Regra: dclr_primitivo : tipo_primitivo IDENTIFIER array_d*;
//     * @return
//     * @throws ParserException
//     */
//    @Override
//    public boolean analyze(SymbolTable st, ErrorTable et) throws ParserException {
//        if (!TipoPrimitivoProduction.getInstance().analyze(st, et)) {
//            return false;
//        }
//        if (!basicParse(st, TokenClass.IDENTIFIER)) {
//            return skipUntilSynchronize(st, et, "Era esperado um identificador");
//        }
//
//        while (ArrayDProduction.getInstance().analyze(st, et)) {
//        }
//
//        return true;
//    }
//
//    @Override
//    protected void populateFirst() {
//        throw new UnsupportedOperationException("Not supported yet.");
//    }
//
//    @Override
//    protected void populateFollow() {
//        throw new UnsupportedOperationException("Not supported yet.");
//    }
//
//    @Override
//    protected void populateSync() {
//        throw new UnsupportedOperationException("Not supported yet.");
//    }
//}
